// src/timer/types.ts
/** 支持的时间单位 */
export type TimeUnit = 'second' | 'minute' | number;

/** Timer 实例的公共状态 */
export type TimerState = 'idle' | 'running' | 'paused';

/**
 * 统一的定时器接口
 * 支持函数式调用（setTimer）与面向对象两种风格
 */
export interface Timer {
  /** 当前状态，只读 */
  readonly state: TimerState;

  /** 暂停定时器（可恢复） */
  pause(): void;

  /** 恢复定时器（仅在 paused 状态有效） */
  resume(): void;

  /** 停止并销毁定时器，释放所有引用，防止内存泄漏 */
  destroy(): void;

  /** 重启定时器，从初始 delay 开始重新计时（可选立即执行） */
  restart(immediate?: boolean): void;
}
